home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 125 / Computer Shopper CD-ROM Issue 125 (1998-07)(Dennis Publishing).iso / Business / Dazzler / DAZZLER.Z / CTextAction.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-26  |  3.1 KB  |  127 lines

  1. import java.awt.Color;
  2. import java.awt.Graphics;
  3. import java.awt.Rectangle;
  4. import java.io.DataInputStream;
  5.  
  6. public class CTextAction extends CDisplayAction {
  7.    protected String m_strText;
  8.    protected Color m_rgbText;
  9.    protected Color m_rgbBackground;
  10.    protected Color m_rgbShadow;
  11.    protected byte m_cShadowOffsetX;
  12.    protected byte m_cShadowOffsetY;
  13.    protected int m_nFlags;
  14.    protected CFontObject m_Font;
  15.    protected CVarOrValue m_vvAngle;
  16.    private String m_strPaintText;
  17.  
  18.    boolean DoAction() {
  19.       boolean var1 = false;
  20.       if (this.m_Font.isUnderlined()) {
  21.          this.m_nFlags |= 8192;
  22.       }
  23.  
  24.       if (this.m_Font.isStruckOut()) {
  25.          this.m_nFlags |= 32768;
  26.       }
  27.  
  28.       if (this.m_strText.length() > 0) {
  29.          String var2 = Utils.InsertVariablesInString(this.m_strText);
  30.          if (!this.m_strPaintText.equals(var2)) {
  31.             this.m_strPaintText = var2;
  32.             var1 = true;
  33.          }
  34.  
  35.          CRect var3;
  36.          if ((this.m_nFlags & 16) != 0) {
  37.             var3 = new CRect(((CDisplayAction)this).GetActualRect());
  38.          } else {
  39.             Graphics var4 = Globals.thePresView.GetDC();
  40.             var4.setFont(this.m_Font.GetFont());
  41.             var3 = new CRect(Utils.DrawText(var4, this.m_strPaintText, ((CDisplayAction)this).GetActualRect(), this.m_nFlags | 32));
  42.             if ((this.m_nFlags & 8) != 0) {
  43.                var3.width += Math.abs(this.m_cShadowOffsetX);
  44.                var3.height += Math.abs(this.m_cShadowOffsetY);
  45.                if ((this.m_nFlags & 2) != 0) {
  46.                   var3.x -= Math.abs(this.m_cShadowOffsetX / 2);
  47.                } else if ((this.m_nFlags & 4) != 0) {
  48.                   var3.x -= Math.abs(this.m_cShadowOffsetX);
  49.                }
  50.  
  51.                var3.x = Math.max(var3.x, ((CDisplayAction)this).GetActualRect().x);
  52.                var3.width = Math.min(var3.width, ((CDisplayAction)this).GetActualRect().width);
  53.             }
  54.          }
  55.  
  56.          if (!((Rectangle)var3).equals(((CDisplayAction)this).GetDrawRect())) {
  57.             if (!((CDisplayAction)this).GetDrawRect().isEmpty()) {
  58.                Globals.thePresView.InvalidateOffScreenRect(((CDisplayAction)this).GetDrawRect());
  59.             }
  60.  
  61.             ((CDisplayAction)this).SetDrawRect(var3);
  62.             var1 = true;
  63.          }
  64.       }
  65.  
  66.       if (super.m_Effect.HasValidEffect()) {
  67.          Globals.thePresView.RenderAndDrawDirtyList();
  68.          Globals.thePresView.AddDrawObject((CIconObject)this, 2048, var1);
  69.       } else {
  70.          Globals.thePresView.AddDrawObject((CIconObject)this, 0, var1);
  71.       }
  72.  
  73.       return true;
  74.    }
  75.  
  76.    void DrawObject(Graphics var1, int var2, CRect var3) {
  77.       var1.setFont(this.m_Font.GetFont());
  78.       if ((this.m_nFlags & 16) != 0) {
  79.          var1.setColor(this.m_rgbBackground);
  80.          var1.fillRect(var3.x, var3.y, var3.width, var3.height);
  81.       }
  82.  
  83.       if ((this.m_nFlags & 8) != 0) {
  84.          if (this.m_cShadowOffsetX > 0) {
  85.             var3.x += this.m_cShadowOffsetX;
  86.          }
  87.  
  88.          if (this.m_cShadowOffsetY > 0) {
  89.             var3.y += this.m_cShadowOffsetX;
  90.          }
  91.  
  92.          var3.width -= Math.abs(this.m_cShadowOffsetX);
  93.          var3.height -= Math.abs(this.m_cShadowOffsetY);
  94.          var1.setColor(this.m_rgbShadow);
  95.          Utils.DrawText(var1, this.m_strPaintText, var3, this.m_nFlags);
  96.          ((Rectangle)var3).move(var3.x - this.m_cShadowOffsetX, var3.y - this.m_cShadowOffsetY);
  97.       }
  98.  
  99.       var1.setColor(this.m_rgbText);
  100.       Utils.DrawText(var1, this.m_strPaintText, var3, this.m_nFlags);
  101.    }
  102.  
  103.    boolean LoadFromFile(DataInputStream var1) {
  104.       this.m_nFlags = FileLoad.ReadCPlusInt(var1);
  105.       this.m_rgbText = FileLoad.ReadColor(var1);
  106.       this.m_rgbBackground = FileLoad.ReadColor(var1);
  107.       this.m_strText = FileLoad.ReadCString(var1);
  108.       this.m_cShadowOffsetX = (byte)FileLoad.ReadCPlusByte(var1);
  109.       this.m_cShadowOffsetY = (byte)FileLoad.ReadCPlusByte(var1);
  110.       this.m_rgbShadow = FileLoad.ReadColor(var1);
  111.       this.m_vvAngle.LoadFromFile(var1);
  112.       this.m_Font.LoadFromFile(var1);
  113.       return super.LoadFromFile(var1);
  114.    }
  115.  
  116.    public CTextAction() {
  117.       ((CIconObject)this).SetTypeID(22);
  118.       this.m_rgbText = new Color(0, 0, 0);
  119.       this.m_rgbBackground = new Color(0, 0, 0);
  120.       this.m_rgbShadow = new Color(0, 0, 0);
  121.       this.m_Font = new CFontObject();
  122.       this.m_vvAngle = new CVarOrValue();
  123.       this.m_strPaintText = "";
  124.       ((CDisplayAction)this).SetZOrder((short)4);
  125.    }
  126. }
  127.